package com.onpositive.realmview.model;

import java.util.Collection;

import com.onpositive.commons.platform.registry.IAdaptable2;
import com.onpositive.realmview.IRealmView;
import com.onpositive.realmview.model.realm.IRealmPosition;
import com.onpositive.semantic.model.realm.IModifiableRealm;
import com.onpositive.semantic.model.realm.IRealm;

public interface IHasViews<T> extends IModelObject,IAdaptable2{

	IModifiableRealm<IRealmView>views();
	
	IModifiableRealm<IRealmPosition>positions();
	
	IViewConfigurationDescriber getQueryProvider();
	
	IRealm<T> getViewRealm();
		
	String getUrl();

	Collection<IRealmView> createDefaultViewsFor(IRealmPosition classificationRealmPosition);

	T[] getRealmContents();
}
